Reentrant code had to be thread safe ( execute only ); self-modifying code was not allowed.
2.
Since a CPU designer could hardly guarantee where this code would be located in a future system, the 6809 design focused heavily on support of reentrant code that could be freely located anywhere in the memory map.
3.
As a consequence of early pervasive design decisions taking advantage of the easily used reentrant object code capabilities of the 6809 processor, programs intended for OS-9 are required to be reentrant; compilers produce reentrant code automatically and assemblers for OS-9 offer considerable support for it.